package com.gmail.huxiaowi.cblog.dao;

import java.util.Collection;

/**
 * Class GenericDao
 * 
 *   通用的DAO，包含基本的CRUD操作。
 *   
 * @author  huxw
 * @version $Revision:1.0.0, $Date:2010-4-29 下午05:36:03$
 * @param <T>
 */
public interface IGenericDao<T> {
    
    /**
     * 增
     * @param t 要增加的对象
     */
    void insert(T t);
    
    /**
     * 改
     * @param t 要修改的对象
     */
    void update(T t);
    
    /**
     * 删
     * @param t 要删除的对象
     */
    void delete(T t);
    
    /**
     * 根据ID查某对象
     * @param id 对象ID
     * @return 根据ID查出的对象
     */
    T queryById(Long  id);
    
    Collection<T> queryAll();
    
    long listSize();
}
